//
// Created by jsjxsy on 2022/8/18.
//从指针类型到一个足够大的整数类型
//    从整数类型或者枚举类型到指针类型
//从一个指向函数的指针到另一个不同类型的指向函数的指针
//    从一个指向对象的指针到另一个不同类型的指向对象的指针
//从一个指向类函数成员的指针到另一个指向不同类型的函数成员的指针
//    从一个指向类数据成员的指针到另一个指向不同类型的数据成员的指针
//
#include <iostream>
using namespace std;
unsigned short Hash(unsigned int p) {
  unsigned int val = reinterpret_cast<unsigned int>(p);
  return (unsigned short) (val ^ (val >> 16));
}

using namespace std;
int main() {
  int a[20];
  for (int i = 0; i < 20; i++) {
    unsigned int b = 1;
    cout << Hash(b) << endl;
  }

}
